Automated bounce flash

ABSTRACT

In implementations of automated bounce flash, a camera device includes a camera to capture an image of a subject in an environment, and includes a flash device to illuminate the subject for image capture. A memory and processor of the camera device implements an image exposure application to select a surface in the environment from which to bounce light emitted from the flash device toward the subject during the image capture. The image exposure application is also implemented to control a direction of the light emitted from the flash device onto the selected surface during the image capture.

BACKGROUND

Flash photography augments exposure in low lighting situations, but cancause glare, red-eye, and unwanted shadowing. Professional photographersoften overcome these limitations by using diffusers that are separatefrom a camera device, and bounce light off nearby surfaces.Photographers may also use an adjustable flash that can be manuallypositioned so as to avoid a direct flash at a person when taking aphotograph of the person. Professional photographers may also utilizemulti-flash photography to minimize the negative effects ofillumination. However, most people carry only a small, fixed-flashcamera device or have a camera device integrated in a mobile device,such as a mobile phone or tablet device. In low lighting situations, thesmall, fixed-flash of a camera device simply flashes directly toward thesubject when capturing a photograph of the subject, which can result inthe unwanted image characteristics.

BRIEF DESCRIPTION OF THE DRAWINGS

Implementations of automated bounce flash are described with referenceto the following Figures. The same numbers may be used throughout toreference like features and components shown in the Figures:

FIG. 1 illustrates an example camera device that can be used toimplement techniques of automated bounce flash as described herein.

FIG. 2 illustrates examples of automated bounce flash utilizing theexample camera device to implement the techniques described herein.

FIG. 3 illustrates an example method of automated bounce flash inaccordance with one or more implementations of the techniques describedherein.

FIG. 4 illustrates an example method of automated bounce flash inaccordance with one or more implementations of the techniques describedherein.

FIG. 5 illustrates an example method of automated bounce flash inaccordance with one or more implementations of the techniques describedherein.

FIG. 6 illustrates various components of an example device that canimplement aspects of automated bounce flash.

DETAILED DESCRIPTION

Implementations of automated bounce flash are described, and providetechniques to minimize or eliminate the unwanted image characteristicsthat can occur when using flash photography in low lightingenvironments. For example, a small camera device, or a camera deviceintegrated in a mobile phone or tablet device, typically includes asmall, fixed-flash. When used in low lighting situations, the small,fixed-flash of the camera device simply flashes directly toward a personwhen capturing a photograph of the person, which can cause glare,red-eye, and unwanted shadowing image characteristics.

In aspects of automated bounce flash, a camera device, such as any typeof digital camera or mobile device that includes an integrated camera,can be used to capture a digital image of a subject in a photographicenvironment, and the camera device includes a flash device to illuminatethe subject during image capture. Generally, as a type of computingdevice, the camera device implements an image exposure application thatanalyzes preview images to select one or more surfaces in theenvironment from which to bounce the light emitted from the flash devicetoward the subject during the image capture. The image exposureapplication is implemented to automatically discern the possiblesurfaces, such as a floor, ceiling, and/or wall, in the photographicenvironment for the bounce flash. The image exposure application canalso control independent segments of the flash device to enable flashangles and direct the light onto the selected surfaces in thephotographic environment. The features of automated bounce flashdescribed herein simplify and automate bounce flash photography,particularly for the general user of a camera device or mobile phone innon-professional use cases.

While features and concepts of automated bounce flash can be implementedin any number of different devices, systems, environments, and/orconfigurations, implementations of automated bounce flash are describedin the context of the following example devices, systems, and methods.

FIG. 1 illustrates an example camera device 100 that can be used toimplement techniques of automated bounce flash as described herein. Inthis example, the camera device 100 may be any type of digital camera102 or mobile device 104 that includes an integrated camera 106, such asa mobile phone or tablet device. Generally, the camera device 100 is anelectronic and/or computing device implemented with various components,such as a processing system 108 and memory 110, as well as any numberand combination of different components as further described withreference to the example device shown in FIG. 6. For example, the cameradevice 100 can include a power source 112 to power the device, such as arechargeable battery and/or any other type of active or passive powersource that may be implemented in an electronic and/or computing device.

The camera device 100 includes the camera 106 that is implemented withan imager 114, which activates to generate preview images 116 and tocapture digital images, such as flash images 118 and digital photos 120.Generally, in terms of photography, a digital SLR (DSLR) camera can beused to generate the preview images 116 and capture digital images,which include the flash images 118 and the digital photos 120. Thepreview images 116 can be generated by the camera 106 when a viewfinderof the camera device 100 is activated (e.g., turned-on) and the shutterbutton is pressed half-way to initiate generating the preview images,generally at approximately thirty frames per second. The photographer oruser of the camera device 100 can then capture a digital photo 120 byfully pressing the shutter button, and the digital photo 120 can bebased on an analysis of the lighting conditions and other imagecharacteristics detected from the preview images 116. Alternatively, theshutter button of the camera device 100 can be pressed by thephotographer or user of the camera device to initiate capturing asequence of multiple flash images 118, which are images captured usingdifferent levels of flash lighting and/or at different angles of theflash lighting.

A digital image that is captured with the camera 106 of the cameradevice 100 generally refers to the functions performed by the cameradevice 100 to image a photo when initiated by a photographer or user ofthe camera device to photograph a person, object, or other type ofsubject. In terms of digital photography, image metadata 122 of acaptured image can also be recorded and stored in memory along with acaptured digital image, and the image metadata 122 can include suchinformation as a timestamp (e.g., date and time), location datacorresponding to when and where an image is captured, and any otherinformation about a digital image, such exposure and lightingcharacteristics.

In this example, the camera device 100 includes a flash device 124 thatmay be an integrated flash component of the camera device 100, or may bean external, peripheral component that either attaches to the cameradevice or is in wireless communication with the camera device. Forexample, the mobile device 104 includes the flash device 124 as anintegrated flash component of the device, along with the integratedcamera 106. Alternatively, the flash device 124 may be an attachablecomponent that attaches to the digital camera 102, such as a digital SLR(DSLR) camera, or the flash device 124 may be a standalone, externalflash device 126 that is implemented for wireless communication with thedigital camera 102. In implementations, the camera device 100 caninclude different wireless radio systems, such as for Wi-Fi, Bluetooth™,or any other wireless communication system or format, which generallyincludes a radio device, antenna, and chipset implemented for wirelesscommunication with other devices.

The flash device 124 has a flash array 128 of light emitters, such aslight emitting diodes (LEDs) or xenon flashes, that initiate a flash oflight when a photographer or user of the camera device 100 initiatestaking a photo in a low-light environment. The flash device 124 can be amulti-directional, fixed-flash designed with independent segments and/orreflectors positioned to direct the light emitted from the flash device124 in different directions and at different flash angles (e.g.,relative to subject being photographed). The light emitters of the flasharray 128 can be grouped into the independent segments of the flashdevice, and any one or combination of the independent segments can beinitiated to flash during an image capture. For example, a centersegment 130 of the flash array 128 emits the light from the flash device124 toward the image subject during a camera flash; an upper segment 132of the flash array 128 generally emits the light from the flash device124 upwards (e.g., at a thirty degree angle); and a lower segment 134 ofthe flash array 128 generally emits the light from the flash device 124downwards (e.g., at a thirty degree angle). In other implementations,the flash array 128 may also include other independent segments, such asside segments 136 of the flash array 128 that generally emit the lightfrom the flash device 124 to the left and/or to the right of the imagesubject during the camera flash.

The camera device 100 includes an image exposure application 138 thatcan be implemented as a software application or module, such asexecutable software instructions (e.g., computer-executableinstructions) that are executable with the processing system 108 of thedevice to implement features of automated bounce flash. The imageexposure application 138 can be stored on computer-readable storagememory (e.g., the device memory 110), such as any suitable memory deviceor electronic data storage implemented in the camera device.

In aspects of automated bounce flash, a photographer can use the cameradevice 100 to capture an image of a subject in an environment, such asto photograph a person in a room, and the flash device 124 illuminatesthe subject for image capture. The image exposure application 138 isimplemented to select a surface in the environment from which to bouncethe light emitted from the flash device 124 toward the subject duringthe image capture, and the image exposure application 138 controls thedirection of the light emitted from the flash device onto the selectedsurface during the image capture. The image exposure application 138 candetermine and control which of the independent segments of the flasharray 128 from which the light of the flash device 124 is emitted in thedirection of the selected surface during the image capture. Examples ofautomated bounce flash using the camera device 100 in variousenvironments are shown and described with reference to FIG. 2.

FIG. 2 illustrates examples of automated bounce flash utilizing theexample camera device 100 to implement the techniques described herein.As shown in example 200, a person standing in a room is the subject 202in an environment 204 who is being photographed with the camera device100, and the flash device 124 is utilized to illuminate the subject 202for image capture. The image exposure application 138 of the cameradevice 100 can select the ceiling of the room as the surface 206 fromwhich to bounce the light 208 that is emitted from the flash device 124,and the reflected light 210 is then directed down toward the subject 202during the image capture. The image exposure application 138 candetermine use of the upper segment 132 of the flash array 128, whichgenerally emits the light from the flash device 124 upwards (e.g., at athirty degree angle). This reflected light 210 is diffused by virtue ofbeing bounced off of the ceiling surface, and the diffused light canprovide an improved, uniform (or approximately uniform) illuminationwhen capturing the photograph of the person, avoiding the glare,red-eye, and unwanted shadowing image characteristics.

In a similar example 212, a person standing on an outdoor patio is thesubject 214 in an environment 216 who is being photographed with thecamera device 100, and the flash device 124 is utilized to illuminatethe subject 214 for image capture. The image exposure application 138 ofthe camera device 100 can select the patio surface, which may beconcrete or painted with a reflective color, as the surface 218 fromwhich to bounce the light 220 that is emitted from the flash device 124,and the reflected light 222 is then directed up toward the subject 214during the image capture. The image exposure application 138 candetermine use of the lower segment 134 of the flash array 128, whichgenerally emits the light from the flash device 124 downwards (e.g., ata thirty degree angle). This reflected light 222 is diffused by virtueof being bounced off the patio surface, and the diffused light canprovide an improved, uniform (or approximately uniform) illuminationwhen capturing the photograph of the person, avoiding the glare,red-eye, and unwanted shadowing image characteristics.

Although both of the automated bounce flash examples 200 and 212 areshown and described with reference to reflecting the light that isemitted from the flash device 124 from only one surface, the imageexposure application 138 can determine and select more than one surfacein an environment from which to bounce the flashed light and illuminatethe photo subject for image capture. For example, the outdoor patio inthe environment 216 may be a covered patio having a cover with areflective surface, and based on lighting conditions, the image exposureapplication 138 can initiate to direct the light from the flash device124 so as to bounce the light from the patio surface (as shown), as wellas bounce the light off of the patio cover to illuminate the subject 214during image capture with the camera device 100. Alternatively or inaddition, the subject in a photographic environment may be betterilluminated with a combination of direct and bounced, diffused lightfrom the flash device 124.

In some instances, there may be a preference of available surfaces, forexample if the floor surface and the ceiling surface in a room aredifferent colors, one of the surfaces may provide a better lightingscenario over the other based on color, finish, reflectivity, and othercharacteristics. Further, the image exposure application 138 can beimplemented to analyze the preview images 116 and/or the flash images118 to detect a color spectrum of the photographic environment, andinitiate to match the color of the light emitted from the flash device124, such as based on which surfaces are selected for their colorreflectivity and/or based on use of different color LEDs in the flasharray 128.

Returning to the discussion of FIG. 1, the camera 106 of the cameradevice 100 can be used to generate multiple preview images 116 of anenvironment prior to the final image capture of a subject beingphotographed in the environment. The camera 106 of the camera device canalso be used to capture a sequence of multiple flash images 118, such asat different flash angles utilizing the independent segments of theflash array 128 that direct the light emitted from the flash device 124in the different directions. In aspects of automated bounce flash, theimage exposure application 138 can be implemented to control andmultiplex the independent segments of the flash array 128 of the flashdevice 124 to capture the flash images 118 at the different flash anglesand/or using different levels of flash lighting.

The image exposure application 138 can include a detection algorithm 140usable to detect features of an environment from the preview images 116and/or from the flash images 118. For example, the detection algorithm140 can detect the subject to be photographed in an environment, such asthe person standing in the room as the subject 202 in the environment204 who is being photographed with the camera device 100, and the personstanding on the outdoor patio as the subject 214 in the environment 216who is being photographed. In this example, the detection algorithm 140may be also be implemented for facial recognition detection to detectthe faces of the subjects being photographed, and providing a locationof a subject in a photographic environment relative to the position ofthe camera device 100.

The detection algorithm 140 is also usable to detect the surfaces in anenvironment from the preview images 116 and/or from the flash images118, such as the surfaces from which the light emitted from the flashdevice 124 can be directed and bounced to illuminate a subject in theenvironment. For example, the detection algorithm 140 can detect theapproximately flat or smooth surfaces in a photograph environment, suchas the ceiling surface 206 in the environment 204, and the patio surface218 in the environment 216. Additionally, the camera device can includea depth sensor 142, such as an infra-red (IR) LED and imager,implemented to detect the depth of the surfaces in an environmentrelative to the camera device 100 and relative to the position of thesubject to be photographed in the environment. In implementations, thedepth sensor 142 may be implemented as a phase detect auto-focus (PDAF)feature of the camera device 100, and the image exposure application 138can determine surface depth in the images from the interlaced pixels ofthe PDAF feature. In other implementations, the depth of a surface in anenvironment may be determined using multiple cameras of the cameradevice 100, or by using structured light features.

From the preview images 116 that are generated and/or from the flashimages 118 that are captured at the different flash angles, the imageexposure application 138 can determine the lighting conditions of anenvironment, as well as analyze the color and brightness characteristicsof the environment, along with any surfaces in the environment that maybe usable to bounce the light emitted from the flash device 124 towardthe subject during the image capture. Additionally, using the depthsensor 142 and/or the detection algorithm 140, the image exposureapplication 138 can determine a position of the subject in theenvironment relative to the depth of a surface in the environment, andselect the surface or multiple surfaces from which to bounce the lightfrom the flash device 124 based on the depth of the surface relative tothe subject in the environment.

Based on any one or more of the lighting conditions, color andbrightness analysis, surfaces detection, surface texture, subject facedetection, and the relative position of the surfaces to a subject in theenvironment, the image exposure application 138 can identify the optimalimage 144 (or approximate optimal image) to capture given thephotographic conditions of the environment. A determination of anoptimal image (or approximate optimal image) can also take into accountother characteristics of image quality, such as any one or more of imageexposure, white balance, focus, signal-to-noise ratio, red-eyeillumination, lighting glare, shadowing, and the like. The imageexposure application 138 can then select one or more flash surfaces 146in the environment and control selected independent flash segments 148of the flash array 128 to control the direction of the light emittedfrom the flash device 124 during image capture by the camera 106 of thecamera device 100 to capture the optimal image 144 (or approximatelyoptimal image) of the subject in the environment.

In aspects of automated bounce flash, the image capture history can bemaintained and used to capture subsequent photos, such as based on thephotographic environment, the previously determined lighting conditions,the selected image exposure characteristics, as well as the respectivepositions of the subject being photographed, the camera device, and thesurfaces in the environment. This information and/or analysis from aprevious photo can be used to enhance or speed up the capture processfor subsequent photos, particularly if the respective positions of thesubject, camera device, and bounce surfaces have not changed. Forexample, the flash setting history can be used for multiple, subsequentphotos, such as if the initial image capture is in a very dark room, theflash lighting will provide an illuminated image from which the imageexposure application 138 can then analyze the photographic environment.

Example methods 300, 400, and 500 are described with reference torespective FIGS. 3-5 in accordance with one or more exampleimplementations of automated bounce flash. Generally, any of thecomponents, modules, methods, and/or operations described herein can beimplemented using software, firmware, hardware (e.g., fixed logiccircuitry), manual processing, or any combination thereof. Someoperations of the example methods may be described in the generalcontext of executable instructions stored on computer-readable storagememory that is local and/or remote to a computer processing system, andimplementations can include software applications, programs, functions,and the like. Alternatively or in addition, any of the functionalitydescribed herein can be performed, at least in part, by one or morehardware logic components, such as, and without limitation,Field-programmable Gate Arrays (FPGAs), Application-specific IntegratedCircuits (ASICs), Application-specific Standard Products (ASSPs),System-on-a-chip systems (SoCs), Complex Programmable Logic Devices(CPLDs), and the like.

FIG. 3 illustrates an example method 300 of automated bounce flash. Theorder in which the method is described is not intended to be construedas a limitation, and any number or combination of the described methodoperations can be performed in any order to perform a method, or analternate method.

At 302, preview images of an environment are generated prior to an imagecapture of a subject in an environment. For example, the preview images116 are generated by the camera 106 when a viewfinder of the cameradevice 100 is activated (e.g., turned-on) and the shutter button ispressed half-way to initiate generating the preview images. Other cameradevices, such as integrated in the mobile device 104 (e.g., a mobilephone or tablet device), may have a selectable image preview settingthat a user of the device can select to initiate generating the previewimages 116.

At 304, lighting conditions of the environment are determined from thepreview images prior to the image capture of the subject in theenvironment. For example, the image exposure application 138 implementedby the camera device 100 determines the lighting conditions in theenvironment 204 prior to image capture of the subject 202 with thecamera device 100. The subject 202 in the environment 204 is the personstanding in the room, and the person is being photographed with thecamera device 100. Similarly, the image exposure application 138determines the lighting conditions in the environment 216 prior to imagecapture of the subject 214 with the camera device 100. The subject 214in the environment 216 is the person standing on the outdoor patio, andthe person is being photographed with the camera device 100. In aspectsof automated bounce flash, the image exposure application 138 candetermine the lighting conditions in an environment prior to imagecapture from lighting sensors and/or from the preview images 116 thatare generated with the camera 106 of the camera device 100.

At 306, a surface in the environment is selected from which to bouncelight emitted from a flash device toward the subject during the imagecapture. For example, the image exposure application 138 implemented bythe camera device 100 selects the ceiling surface 206 in the environment204 from which to bounce the light 208 emitted from the flash device 124toward the subject 202 as the reflected light 210 during the imagecapture of the subject 202 with the camera device 100. Similarly, theimage exposure application 138 selects the patio surface 218 in theenvironment 216 from which to bounce the light 220 emitted from theflash device 124 toward the subject 214 as the reflected light 222during the image capture of the subject 214 with the camera device 100.In aspects of automated bounce flash, the image exposure application 138can select one or more surfaces in an environment from which to bouncethe light emitted from the flash device 124, where the one or moresurfaces are determined from the preview images 116 that are generatedwith the camera 106 of the camera device 100.

At 308, a direction of the light emitted from the flash device iscontrolled onto the selected surface during the image capture. Forexample, the image exposure application 138 controls the direction ofthe light 208 emitted from the flash device 124 onto the selectedceiling surface 206 during the image capture of the subject 202 in theenvironment 204 with the camera device 100. The image exposureapplication 138 can determine one or more independent flash segments 148of the flash array 128 from which the light is emitted from the flashdevice 124 in the direction of the selected flash surface 146 (orselected multiple flash surfaces) during the image capture. The imageexposure application 138 can direct the light 208 emitted from the flashdevice 124 in one or more different directions onto the respectiveselected flash surfaces (e.g., the selected ceiling surface 206)utilizing the independent flash segments 148 of the flash device 124.Similarly, the image exposure application 138 controls the direction ofthe light 220 emitted from the flash device 124 onto the selected patiosurface 218 during the image capture of the subject 214 in theenvironment 216 with the camera device 100.

At 310, an image of the subject in the environment is captured, thesubject being illuminated with the light emitted from the flash deviceand the light reflected from the selected surface in the environment.For example, the camera 106 of the camera device 100 captures an optimalimage 144 (or an approximately optimal image) of the subject 202 in theenvironment 204, the subject 202 being illuminated with the light 208emitted from the flash device 124 and the reflected light 210 from theselected ceiling surface 206 in the environment. Similarly, the camera106 of the camera device 100 captures an optimal image 144 (or anapproximately optimal image) of the subject 214 in the environment 216,the subject 214 being illuminated with the light 220 emitted from theflash device 124 and the reflected light 222 from the selected patiosurface 218 in the environment.

FIG. 4 illustrates an example method 400 of automated bounce flash. Theorder in which the method is described is not intended to be construedas a limitation, and any number or combination of the described methodoperations can be performed in any order to perform a method, or analternate method.

At 402, preview images of an environment are generated prior to an imagecapture of a subject in an environment. For example, the preview images116 are generated by the camera 106 when a viewfinder of the cameradevice 100 is activated (e.g., turned-on) and the shutter button ispressed half-way to initiate generating the preview images. Other cameradevices, such as integrated in the mobile device 104 (e.g., a mobilephone or tablet device), may have a selectable image preview settingthat a user of the device can select to initiate generating the previewimages 116.

At 404, lighting conditions of the environment are determined from thepreview images prior to the image capture of the subject in theenvironment. For example, the image exposure application 138 implementedby the camera device 100 determines the lighting conditions in theenvironment 204 prior to image capture of the subject 202 with thecamera device 100. The subject 202 in the environment 204 is the personstanding in the room, and the person is being photographed with thecamera device 100. Similarly, the image exposure application 138determines the lighting conditions in the environment 216 prior to imagecapture of the subject 214 with the camera device 100. The subject 214in the environment 216 is the person standing on the outdoor patio, andthe person is being photographed with the camera device 100.

At 406, flash images of the environment are captured prior to the imagecapture, the flash images being captured at different flash anglesutilizing a flash device that directs light emitted from the flashdevice in different directions. For example, the flash images 118 arecaptured by the camera 106 of the camera device 100 at different flashangles utilizing the independent segments flash array 128 that directthe light emitted from the flash device 124 in the different directions.In aspects of automated bounce flash, the image exposure application 138controls and multiplexes the independent segments of the flash array 128of the flash device 124 to capture the flash images 118 at the differentflash angles and/or at different levels or intensities of flashlighting.

At 408, an image of the subject to capture is identified based on thepreview images and based on the flash images captured at the differentflash angles. For example, the image exposure application 138 candetermine the lighting conditions of a photographic environment, as wellas analyze the imaging characteristics of the environment, and identifythe optimal image 144 (or approximate optimal image) to capture giventhe photographic conditions of the environment.

At 410, a surface in the environment is selected from which to bouncethe light emitted from a flash device toward the subject during theimage capture. For example, detection algorithm 140 of the imageexposure application 138 is usable to detect the surfaces in anenvironment from the preview images 116 and/or from the flash images118, such as the surfaces from which the light emitted from the flashdevice 124 can be directed and bounced to illuminate a subject in theenvironment. For example, the detection algorithm 140 can detect theapproximately flat or smooth surfaces in a photograph environment, suchas the ceiling surface 206 in the environment 204, and the patio surface218 in the environment 216. Additionally, the depth sensor 142 of thecamera device 100 detects the depth of the surfaces in an environmentrelative to the camera device 100 and relative to the position of thesubject to be photographed in the environment. The image exposureapplication 138 can then select the one or more surfaces in theenvironment from which to bounce the light emitted from the flash device124 based on input from the detection algorithm 140 and/or based oninput from the depth sensor 142.

At 412, the image of the subject in the environment is captured, thesubject being illuminated with the light emitted from the flash deviceand the light reflected from the selected surface in the environment.For example, the camera 106 of the camera device 100 captures an optimalimage 144 (or an approximately optimal image) of the subject 202 in theenvironment 204, the subject 202 being illuminated with the light 208emitted from the flash device 124 and the reflected light 210 from theselected ceiling surface 206 in the environment. Similarly, the camera106 of the camera device 100 captures an optimal image 144 (or anapproximately optimal image) of the subject 214 in the environment 216,the subject 214 being illuminated with the light 220 emitted from theflash device 124 and the reflected light 222 from the selected patiosurface 218 in the environment.

FIG. 5 illustrates an example method 500 of automated bounce flash. Theorder in which the method is described is not intended to be construedas a limitation, and any number or combination of the described methodoperations can be performed in any order to perform a method, or analternate method.

At 502, preview images of an environment are generated prior to an imagecapture of a subject in an environment. For example, the preview images116 are generated by the camera 106 when a viewfinder of the cameradevice 100 is activated (e.g., turned-on) and the shutter button ispressed half-way to initiate generating the preview images. Other cameradevices, such as integrated in the mobile device 104 or other type ofmobile device, may have a selectable image preview setting that a userof the device can select to initiate generating the preview images 116.

At 504, lighting conditions of the environment are determined from thepreview images prior to an image capture of the subject in theenvironment. For example, the image exposure application 138 implementedby the camera device 100 determines the lighting conditions in theenvironment 204 prior to image capture of the subject 202 with thecamera device 100. Similarly, the image exposure application 138determines the lighting conditions in the environment 216 prior to imagecapture of the subject 214 with the camera device 100.

At 506, flash images of the environment are captured prior to the imagecapture, the flash images being captured at different flash anglesutilizing a flash device that directs light emitted from the flashdevice in different directions. For example, the flash images 118 arecaptured by the camera 106 of the camera device 100 at different flashangles utilizing the independent segments of the flash array 128 thatdirect the light emitted from the flash device 124 in the differentdirections. In aspects of automated bounce flash, the image exposureapplication 138 controls and multiplexes the independent segments of theflash array 128 of the flash device 124 to capture the flash images 118at the different flash angles.

At 508, multiple optimal images of the subject to capture are identifiedbased on the flash images captured at optimal flash angles. For example,the image exposure application 138 determines the lighting conditions ofan environment, and based on the flash images 118 that are captured atthe different flash angles, identifies multiple optimal images 144(e.g., several of the approximate optimal images) to capture given thephotographic conditions of the environment. In aspects of automatedbounce flash, the optimal flash angles (or approximate optimal flashangles) can be determined based on image analysis of the flash images118 by the image exposure application 138, where the optimal flashangles produce higher quality flash images based on appearance relativeto lower quality flash images.

At 510, one or more surfaces in the environment are selected from whichto bounce the light emitted from the flash device toward the subjectduring the image capture of the multiple optimal images. For example,the image exposure application 138 selects the one or more surfaces inthe environment from which to bounce the light emitted from the flashdevice 124, where the one or more surfaces are determined based on inputfrom the detection algorithm 140 as determined from the preview images116, the flash images 118, and/or based on input from the depth sensor142.

At 512, the multiple optimal images of the subject in the environmentare captured, the subject being illuminated with the light emitted fromthe flash device and the light reflected from the selected surfaces inthe environment. For example, the camera 106 of the camera device 100captures the multiple optimal images 144 (or approximate optimal images)of the subject 202 in the environment 204, with the subject 202 beingilluminated with the light 208 emitted from the flash device 124 and isthe reflected light 210 that is bounced from the selected ceilingsurface 206. Similarly, the camera 106 of the camera device 100 capturesthe multiple optimal images 144 (or approximate optimal images) of thesubject 214 in the environment 216, with the subject 214 beingilluminated with the light 220 emitted from the flash device 124 and isthe reflected light 222 that is bounced from the selected patio surface218.

At 514, a final image of the subject is composited from the multipleoptimal images of the subject in the environment as captured at theoptimal flash angles. For example, the image exposure application 138composites a final image (e.g., an optimal image 144, or approximatelyoptimal image) from the multiple optimal images of the subject in theenvironment as captured by the camera 106 of the camera device 100 atthe optimal flash angles with the flash array 128 of the flash device124.

FIG. 6 illustrates various components of an example device 600, whichcan implement examples of automated bounce flash. The example device 600can be implemented as any type of camera device, or as a mobile devicethat includes an integrated camera device, and in any form of anelectronic and/or computing device. For example, the camera device 100shown and described with reference to FIGS. 1-5 may be implemented asthe example device 600.

The device 600 includes communication transceivers 602 that enable wiredand/or wireless communication of device data 604 with other devices. Thedevice data 604 can include any of the camera preview images, flashimages, digital photos, and image metadata, as well as any of the imageexposure application data that is detected and/or determined.Additionally, the device data can include any type of audio, video,and/or image data. Example transceivers include wireless personal areanetwork (WPAN) radios compliant with various IEEE 802.15 (Bluetooth™)standards, wireless local area network (WLAN) radios compliant with anyof the various IEEE 802.11 (WiFi™) standards, wireless wide area network(WWAN) radios for cellular phone communication, wireless metropolitanarea network (WMAN) radios compliant with various IEEE 802.16 (WiMAX™)standards, and wired local area network (LAN) Ethernet transceivers fornetwork data communication.

The device 600 may also include one or more data input ports 606 viawhich any type of data, media content, and/or inputs can be received,such as user-selectable inputs to the device, messages, music,television content, and any other type of audio, video, and/or imagedata received from any content and/or data source. The data input portsmay include USB ports, coaxial cable ports, and other serial or parallelconnectors (including internal connectors) for flash memory, DVDs, CDs,and the like. These data input ports may be used to couple the device toany type of components, peripherals, or accessories such as microphonesand/or cameras.

The device 600 includes a processing system 608 of one or moreprocessors (e.g., any of microprocessors, controllers, and the like)and/or a processor and memory system implemented as a system-on-chip(SoC) that processes computer-executable instructions. The processorsystem may be implemented at least partially in hardware, which caninclude components of an integrated circuit or on-chip system, anapplication-specific integrated circuit (ASIC), a field-programmablegate array (FPGA), a complex programmable logic device (CPLD), and otherimplementations in silicon and/or other hardware. Alternatively or inaddition, the device can be implemented with any one or combination ofsoftware, hardware, firmware, or fixed logic circuitry that isimplemented in connection with processing and control circuits, whichare generally identified at 610. The device 600 may further include anytype of a system bus or other data and command transfer system thatcouples the various components within the device. A system bus caninclude any one or combination of different bus structures andarchitectures, as well as control and data lines.

The device 600 also includes computer-readable storage memory 612 thatenables data storage, such as data storage devices that can be accessedby a computing device, and that provide persistent storage of data andexecutable instructions (e.g., software applications, programs,algorithms, functions, and the like). Examples of the computer-readablestorage memory 612 include volatile memory and non-volatile memory,fixed and removable media devices, and any suitable memory device orelectronic data storage that maintains data for computing device access.The computer-readable storage memory can include various implementationsof random access memory (RAM), read-only memory (ROM), flash memory, andother types of storage memory devices in various memory deviceconfigurations. The device 600 may also include a mass storage mediadevice.

The computer-readable storage memory 612 provides data storagemechanisms to store the device data 604, other types of informationand/or data, and various device applications 614 (e.g., softwareapplications). For example, an operating system 616 can be maintained assoftware instructions with a memory device and executed by the processorsystem 608. The device applications may also include a device manager,such as any form of a control application, software application,signal-processing and control module, code that is native to aparticular device, a hardware abstraction layer for a particular device,and so on. In this example, the device 600 includes an image exposureapplication 618 that implements features and aspects of automated bounceflash, and may be implemented with hardware components and/or insoftware, such as when the device 600 is implemented as the cameradevice 100 described with reference to FIGS. 1-5. The image exposureapplication 618 is an example of the image exposure application 138implemented by the camera device 100 as shown and/or described withreference to FIGS. 1-5.

In this example, the device 600 includes a camera 620, a flash device622, and a depth sensor 624, such as when the camera device 100 isimplemented as the example device 600. Examples of these componentsinclude the camera 106, the flash device 124, and the depth sensor 142of the camera device 100 as shown and/or described with reference toFIGS. 1-5. Further, although the flash device 622 is shown as anintegrated component of the device 600, the flash device 622 may beimplemented as an external, peripheral component of the example device.

The device 600 also includes an audio and/or video processing system 626that generates audio data for an audio system 628 and/or generatesdisplay data for a display system 630. The audio system and/or thedisplay system may include any devices that process, display, and/orotherwise render audio, video, display, and/or image data. Display dataand audio signals can be communicated to an audio component and/or to adisplay component via an RF (radio frequency) link, S-video link, HDMI(high-definition multimedia interface), composite video link, componentvideo link, DVI (digital video interface), analog audio connection, orother similar communication link, such as media data port 632. Inimplementations, the audio system and/or the display system areintegrated components of the example device. Alternatively, the audiosystem and/or the display system are external, peripheral components tothe example device.

The device 600 can also include one or more power sources 634, such aswhen the device is implemented as a mobile device or portable cameradevice. The power sources may include a charging and/or power system,and can be implemented as a flexible strip battery, a rechargeablebattery, a charged super-capacitor, and/or any other type of active orpassive power source.

Although implementations of automated bounce flash have been describedin language specific to features and/or methods, the subject of theappended claims is not necessarily limited to the specific features ormethods described. Rather, the specific features and methods aredisclosed as example implementations of automated bounce flash, andother equivalent features and methods are intended to be within thescope of the appended claims. Further, various different examples aredescribed and it is to be appreciated that each described example can beimplemented independently or in connection with one or more otherdescribed examples. Additional aspects of the techniques, features,and/or methods discussed herein relate to one or more of the following:

A camera device, comprising: a camera to capture an image of a subjectin an environment; a flash device to illuminate the subject for imagecapture; a memory and processor that implements an image exposureapplication to: select a surface in the environment from which to bouncelight emitted from the flash device toward the subject during the imagecapture; and control a direction of the light emitted from the flashdevice onto the selected surface during the image capture.

Alternatively or in addition to the above described camera device, anyone or combination of: the flash device is a multi-directional,fixed-flash comprising independent segments positioned to direct thelight emitted from the flash device in different directions; and theimage exposure application is implemented to determine one or more ofthe independent segments of the flash device from which the light isemitted in the direction of the selected surface during the imagecapture. The camera captures flash images of the environment prior tothe image capture, the flash images being captured at different flashangles utilizing the independent segments of the flash device thatdirect the light in the different directions. The image exposureapplication is implemented to identify the image of the subject tocapture based on image analysis of the flash images captured at thedifferent flash angles. The independent segments of the flash deviceform a flash array; and the image exposure application is implemented tomultiplex the flash array to capture the flash images at the differentflash angles. The camera generates preview images of the environmentprior to the image capture; the image exposure application isimplemented to: analyze the preview images for image quality; andidentify the image of the subject to capture based on the analysis ofthe preview images. The camera generates preview images of theenvironment prior to the image capture; the image exposure applicationis implemented to: determine lighting conditions of the environment fromthe preview images that include multiple surfaces in the environmentusable to bounce the light emitted from the flash device toward thesubject during the image capture; select at least an additional surfacefrom the multiple surfaces in the environment from which to bounce thelight emitted from the flash device toward the subject during the imagecapture; and control the direction of the light emitted from the flashdevice onto the selected surface and the at least additional surfaceduring the image capture. A sensor to detect a depth of the surface inthe environment relative to a position of the camera device; andwherein: the camera generates preview images of the environment prior tothe image capture; the image exposure application is implemented to:determine a subject position of the subject in the environment relativeto the depth of the surface in the environment; and select the surfacefrom which to bounce the light based on the depth of the surfacerelative to the subject in the environment.

A method, comprising: generating preview images of an environment priorto an image capture of a subject in the environment; determininglighting conditions of the environment from the preview images prior tothe image capture of the subject; selecting a surface in the environmentfrom which to bounce light emitted from a flash device toward thesubject during the image capture; controlling a direction of the lightemitted from the flash device onto the selected surface during the imagecapture; and capturing an image of the subject in the environment, thesubject being illuminated with the light emitted from the flash deviceand the light reflected from the selected surface in the environment.

Alternatively or in addition to the above described method, any one orcombination of: directing the light emitted from the flash device indifferent directions utilizing independent segments of the flash device;and determining one or more of the independent segments of the flashdevice from which the light is emitted in the direction of the selectedsurface during the image capture. Capturing flash images of theenvironment prior to said capturing the image, the flash images beingcaptured at different flash angles utilizing the independent segments ofthe flash device that direct the light in the different directions.Identifying the image of the subject to capture based on image analysisof the flash images captured at the different flash angles. Theindependent segments of the flash device form a flash array, and themethod further comprising: multiplexing the flash array to capture theflash images at the different flash angles. Analyzing the preview imagesfor image quality; and identifying the image of the subject to capturebased on the image quality analysis of the preview images. Determiningmultiple surfaces in the environment usable to bounce the light emittedfrom the flash device toward the subject during the image capture;selecting at least an additional surface from the multiple surfaces inthe environment from which to bounce the light emitted from the flashdevice toward the subject during the image capture; and controlling thedirection of the light emitted from the flash device onto the selectedsurface and the at least additional surface during the image capture.

A method, comprising: generating preview images of an environment priorto an image capture of a subject in the environment; determininglighting conditions of the environment from the preview images prior tothe image capture of the subject in the environment; capturing flashimages of the environment prior to the image capture, the flash imagesbeing captured at different flash angles utilizing a flash device thatdirects light emitted from the flash device in different directions;identifying an image of the subject to capture based on the previewimages and based on the flash images captured at the different flashangles; selecting a surface in the environment from which to bounce thelight emitted from a flash device toward the subject during the imagecapture; and capturing the image of the subject in the environment, thesubject being illuminated with the light emitted from the flash deviceand the light reflected from the selected surface in the environment.

Alternatively or in addition to the above described method, any one orcombination of: determining optimal flash angles based on image analysisof the flash images, the optimal flash angles producing higher qualityflash images based on appearance relative to lower quality flash images;and capturing additional images of the subject in the environment at theoptimal flash angles utilizing the flash device that directs the lightin the different directions that correspond to the optimal flash angles.Said identifying the image of the subject to capture is based on theadditional images of the subject in the environment captured at theoptimal flash angles. Compositing a final image of the subject from theadditional images of the subject in the environment captured at theoptimal flash angles. Said identifying the image of the subject tocapture is based on image analysis of the generated preview images andthe flash images captured at the different flash angles.

The invention claimed is:
 1. A camera device, comprising: a camera tocapture an image of a subject in an environment; a flash device toilluminate the subject for image capture; a memory and processor thatimplements an image exposure application to: determine lightingconditions of the environment that includes multiple surfaces usable tobounce light emitted from the flash device toward the subject during theimage capture; select a surface and at least an additional surface fromthe multiple surfaces in the environment from which to bounce the lightemitted from the flash device toward the subject during the imagecapture; and control a direction of the light emitted from the flashdevice onto the selected surface and onto the at least additionalsurface during the image capture.
 2. The camera device as recited inclaim 1, wherein: the flash device is a multi-directional, fixed-flashcomprising independent segments positioned to direct the light emittedfrom the flash device in different directions; and the image exposureapplication is implemented to determine one or more of the independentsegments of the flash device from which the light is emitted in thedirection of the selected surface and the at least additional surfaceduring the image capture.
 3. The camera device as recited in claim 2,wherein the camera captures flash images of the environment prior to theimage capture, the flash images being captured at different flash anglesutilizing the independent segments of the flash device that direct thelight in the different directions.
 4. The camera device as recited inclaim 3, wherein the image exposure application is implemented toidentify the image of the subject to capture based on image analysis ofthe flash images captured at the different flash angles.
 5. The cameradevice as recited in claim 3, wherein: the independent segments of theflash device form a flash array; and the image exposure application isimplemented to multiplex the flash array to capture the flash images atthe different flash angles.
 6. The camera device as recited in claim 1,wherein: the camera generates preview images of the environment prior tothe image capture; the image exposure application is implemented to:analyze the preview images for image quality; and identify the image ofthe subject to capture based on the analysis of the preview images. 7.The camera device as recited in claim 1, wherein: the camera generatespreview images of the environment prior to the image capture; and theimage exposure application is implemented to determine the lightingconditions of the environment from the preview images.
 8. The cameradevice as recited in claim 1, further comprising: a sensor to detect adepth of the surface in the environment relative to a position of thecamera device; and wherein: the camera generates preview images of theenvironment prior to the image capture; the image exposure applicationis implemented to: determine a subject position of the subject in theenvironment relative to the depth of the surface in the environment; andselect the surface from which to bounce the light based on the depth ofthe surface relative to the subject in the environment.
 9. A method,comprising: generating preview images of an environment prior to animage capture of a subject in the environment; determining lightingconditions of the environment from the preview images prior to the imagecapture of the subject; selecting a surface and at least an additionalsurface in the environment from which to bounce light emitted from aflash device toward the subject during the image capture; controlling adirection of the light emitted from the flash device onto the selectedsurface and onto the at least additional surface during the imagecapture; and capturing an image of the subject in the environment, thesubject being illuminated with the light emitted from the flash deviceand the light reflected from the selected surface and the at leastadditional surface in the environment.
 10. The method as recited inclaim 9, further comprising: directing the light emitted from the flashdevice in different directions utilizing independent segments of theflash device; and determining one or more of the independent segments ofthe flash device from which the light is emitted in the direction of theselected surface and the at least additional surface during the imagecapture.
 11. The method as recited in claim 10, further comprising:capturing flash images of the environment prior to said capturing theimage, the flash images being captured at different flash anglesutilizing the independent segments of the flash device that direct thelight in the different directions.
 12. The method as recited in claim11, further comprising: identifying the image of the subject to capturebased on image analysis of the flash images captured at the differentflash angles.
 13. The method as recited in claim 11, wherein theindependent segments of the flash device form a flash array, and themethod further comprising: multiplexing the flash array to capture theflash images at the different flash angles.
 14. The method as recited inclaim 9, further comprising: analyzing the preview images for imagequality; and identifying the image of the subject to capture based onthe image quality analysis of the preview images.
 15. The method asrecited in claim 9, further comprising: determining multiple surfaces inthe environment usable to bounce the light emitted from the flash devicetoward the subject during the image capture; and selecting the surfaceand the at least additional surface from the multiple surfaces in theenvironment from which to bounce the light emitted from the flash devicetoward the subject during the image capture.
 16. A method, comprising:generating preview images of an environment with a camera device priorto an image capture of a subject in the environment; determininglighting conditions of the environment from the preview images prior tothe image capture of the subject in the environment; capturing flashimages of the environment prior to the image capture, the flash imagesbeing captured at different flash angles utilizing a flash device thatdirects light emitted from the flash device in different directions;identifying an image of the subject to capture based on the previewimages and based on the flash images captured at the different flashangles; detecting a depth of a surface in the environment relative to aposition of the camera device; determining a subject position of thesubject in the environment relative to the depth of the surface in theenvironment; selecting the surface in the environment from which tobounce the light emitted from a flash device toward the subject duringthe image capture based on the depth of the surface relative to thesubject in the environment; and capturing the image of the subject inthe environment, the subject being illuminated with the light emittedfrom the flash device and the light reflected from the selected surfacein the environment.
 17. The method as recited in claim 16, furthercomprising: determining optimal flash angles based on image analysis ofthe flash images, the optimal flash angles producing higher qualityflash images based on appearance relative to lower quality flash images;and capturing additional images of the subject in the environment at theoptimal flash angles utilizing the flash device that directs the lightin the different directions that correspond to the optimal flash angles.18. The method as recited in claim 17, wherein said identifying theimage of the subject to capture is based on the additional images of thesubject in the environment captured at the optimal flash angles.
 19. Themethod as recited in claim 17, further comprising: compositing a finalimage of the subject from the additional images of the subject in theenvironment captured at the optimal flash angles.
 20. The method asrecited in claim 16, wherein said identifying the image of the subjectto capture is based on image analysis of the generated preview imagesand the flash images captured at the different flash angles.